package Controlador;



import Componentes.*;

/** Clase encargada de enviar las ordenes a los robot. */
public class Controlador {

	public static void main(String[] args) {
		
		Input i1 = new Input(1);
		Thread generadorinput1 = new Thread (new GeneradorPiezas(i1));
		generadorinput1.start();
		Input i2 = new Input(2);
		Thread generadorinput2 = new Thread (new GeneradorPiezas(i2));
		generadorinput2.start();
		Input i3 = new Input(3);
		Thread generadorinput3 = new Thread (new GeneradorPiezas(i3));
		generadorinput3.start();
		
		Maquina m1 = new Maquina(1);		
		Maquina m2 = new Maquina(2);
		Maquina m3 = new Maquina(3);
		Maquina m4 = new Maquina(4);
		
		Output o1 = new Output(1);
		Output o2 = new Output(2);
		Output o3 = new Output(3);
		
		Robot r1 = new Robot(1);
		Robot r2 = new Robot(2);
		Robot r3 = new Robot(3);
	
		//Camino 1.
		System.out.println("Camino 1: ");
		Pieza pieza1 = r1.Moverpieza(i1, m1, 100);
		m1.procesarPieza(pieza1, 1);
		r2.Moverpieza(pieza1, m1, m2, 200);	
		m2.procesarPieza(pieza1, 1);
		r3.Moverpieza(pieza1, m2, o1, 200);	
		
		//Camino 2.
		System.out.println("\nCamino 2: ");
		Pieza pieza2 = r2.Moverpieza(i2, m3, 100);
		m3.procesarPieza(pieza2, 1);
		r2.Moverpieza(pieza2, m3, m4, 200);	
		m4.procesarPieza(pieza2, 1);
		r3.Moverpieza(pieza2, m4, o2, 200);	
		
		//Camino 3
		System.out.println("\nCamino 3: ");
		Pieza pieza3 = r3.Moverpieza(i3, m2, 100);
		m2.procesarPieza(pieza3, 1);
		Pieza pieza4 = r3.Moverpieza(i3, m4, 100);
		m4.procesarPieza(pieza4, 1);
		Pieza piezaresultante = r2.Moverpieza(pieza3, m2, pieza4, m4,m3, 100);
		m3.procesarPieza(piezaresultante, 1);	
		r1.Moverpieza(piezaresultante, m3, o3, 100);
		
	}

}
